Kotlin 中二级构造函数的使用 | 您所在的位置:网站首页 › kotlin constructor › Kotlin 中二级构造函数的使用 |
当前位置:主页 > 学无止境 > 编程语言 >
WEB前端
编程语言
网络
算法
操作系统
数据库
Kotlin 中二级构造函数的使用
作者:迹忆客
最近更新:2023/03/21
浏览次数:
构造函数是在面向对象的编程语言中创建对象时自动调用的成员函数。 由于 Kotlin 是一种 OOPS 语言,因此它还使用构造函数进行对象初始化。在 Kotlin 中,有两个构造函数:主构造函数和辅助构造函数。 本文介绍了 Kotlin 中二级构造函数的概念以及如何使用它们。 Kotlin 二次构造函数的历史直到 2015 年,Kotlin 才支持辅助构造函数。在此之前,开发人员使用其中一种打击技术来解决大多数辅助构造函数用例。 在类旁边定义一个工厂方法。 定义参数的默认值。 使用在另一个对象中定义的工厂方法。尽管这些技术已经足够好,但仍需要辅助构造函数。随着 2015 年 M11 的推出,Kotlin 开始支持二级构造函数。 Kotlin 二级构造函数虽然主构造函数提供了一种简洁的方式来初始化一个类,但在扩展它们时,辅助构造函数变得很有必要。此外,辅助构造函数还允许添加初始化逻辑。 虽然我们在一个程序中只能有一个主构造函数,但 Kotlin 允许创建多个辅助构造函数。 我们可以通过 constructor 关键字在 Kotlin 中创建和使用二级构造函数。一个 Kotlin 程序可以有一个或多个辅助构造函数。 通常避免使用辅助构造函数,但它们用于扩展类。原因是它们通过多个构造函数以多种方式帮助初始化单个类。 语法: class ABC { constructor(data: String) { // code }为了更好地理解二级构造函数,让我们看下面的例子。我们将为类 Product 创建一个辅助构造函数,它将输出两个整数的乘积。 示例代码: fun main(args: Array) { Product(3, 7) } class Product { //Creating a secondary constructor constructor(x: Int, y:Int){ var i = x * y println("The product of integers 3 and 7 is: ${i}") } }输出: 在 Kotlin 中创建多个辅助构造函数 我们还可以在 Kotlin 中拥有多个构造函数。编译器调用的许多构造函数中的哪一个是根据传递的参数决定的。 示例代码: fun main(args: Array) { Student(11035, "David") Student(11047,"Steve","New York") } class Student { constructor (std_id : Int, std_name: String ) { var id: Int = std_id var name: String = std_name print("Student's ID is: $id, ") println("Student's Name is: $name") println() } constructor (std_id : Int, std_name: String, std_city: String) { var id: Int = std_id var name: String = std_name var city: String = std_city print("Student's ID is: $id, ") print("Student's Name is: $name, ") println("Student's City is: $city") } }输出: 从另一个现有的辅助构造函数调用辅助构造函数 我们可以使用现有的辅助构造函数在 Kotlin 中调用辅助构造函数。我们需要使用 this() 函数。 示例代码: fun main(args: Array){ Product(3,7) } class Product { // using this to call another secondary constructor constructor(x: Int,y:Int) : this(x,y,5) { var ProductOfTwo = x * y println("The product of the two integers is: $ProductOfTwo") } constructor(x: Int, y: Int,z: Int) { var ProductOfThree = x * y * z println("The product of the three integers is is: $ProductOfThree") } }输出: 从子类中的辅助构造函数调用父类的辅助构造函数 除了从另一个调用辅助构造函数外,我们还可以从子类的构造函数调用父类的辅助构造函数。它类似于继承。 我们需要使用 super 关键字来继承构造函数。 示例代码: fun main(args: Array) { childClass(11035, "David") } open class parentClass { constructor (std_id : Int, std_name: String, std_city: String) { var id: Int = std_id var name: String = std_name var city: String = std_city print("Student's ID is: $id, ") print("Student's Name is: $name, ") println("Student's City is: $city") println() } } class childClass : parentClass { constructor (std_id : Int, std_name: String):super(std_id,std_name,"New York"){ var id: Int = std_id var name: String = std_name print("Student's ID is: $id, ") println("Student's Name is: $name") } }输出:
上一篇:Plotly 表格详细介绍 下一篇:Kotlin 中的 Getter 和 Setter 相关文章 Kotlin 中的 Getter 和 Setter发布时间:2023/03/22 浏览次数:122 分类:编程语言 Kotlin 中的属性是通过 getter 和 setter 访问的。本文介绍了 Kotlin set() 的概念以及我们如何使用它来访问 Kotlin 代码中的属性。 如何在 Java 中使用复合设计模式?发布时间:2023/02/09 浏览次数:148 分类:算法 你好 Java 程序员,如果大家想了解 Java 中的 复合设计模式 ,例如如何实现复合设计模式以及何时使用它,那么来对地方了。 在本文中,我们将讨论 复合设计模式 。 复合设计模式( Java 中的观察者设计模式发布时间:2023/02/09 浏览次数:83 分类:算法 Java 中的 观察者设计模式 是一种基本的核心 Java 模式,其中 Observe 监视 Subject 的状态或属性的任何变化。 例如,公司向所有股东更新他们在这里做出的任何决定公司是主体,股东是观 Java 中的适配器 vs 装饰器 vs 门面 vs 代理设计模式发布时间:2023/02/09 浏览次数:149 分类:算法 Adapter(适配器)、Decorator(装饰器)、Facade(门面) 和 Proxy(代理) 设计模式之间有一些惊人的相似之处,因为它们都使用组合和委托来解决问题。 适配器模式 包装一个接口,并将 如何在 Java 中使用适配器设计模式发布时间:2023/02/08 浏览次数:143 分类:算法 Java 中的 适配器设计模式 ,也称为 Wrapper 模式,是另一个非常有用的 GOF 模式,它有助于弥合 Java 中两个类之间的差距。 根据四人组模式列表,适配器是一种结构模式,很像 Java 中的代 如何在 Java 中使用 Stream allMatch() 和 anyMatch() 函数?发布时间:2023/02/08 浏览次数:184 分类:编程语言 Hello,我们都知道流对于当今 Java 编程和编码的日常需求是多么的重要。 它允许我们以声明的方式过滤内存中的数据,它还允许我们转换对象以及创建复杂的 Stream 管道以声明的方式表 如何在 Java 中使用状态设计模式?发布时间:2023/02/08 浏览次数:118 分类:算法 状态(State)设计模式 是一种行为模式。 状态模式 看起来类似于策略模式,但它有助于管理对象状态,从而使它们在不同状态下表现不同。 在这个例子中,我们将采用一个著名的面向对 如何在 Java 中实现命令设计模式发布时间:2023/02/08 浏览次数:127 分类:算法 大家好,今天,我们将学习一种重要的设计模式,它经常被 Java 开发人员忽视。 是的,我说的是 命令模式 ,它可以帮助我们编写灵活、松散耦合的代码来实现应用程序中的操作和事件 Java 装饰器设计模式示例发布时间:2023/02/08 浏览次数:105 分类:算法 大家好,如果想了解 Java 中的 装饰器设计模式 ,那么你来对地方了。由于设计模式在构建软件时非常重要,在任何核心 Java 面试中也同样重要,因此清楚地了解 Java 中的各种设计模式 转载请发邮件至 [email protected] 进行申请,经作者同意之后,转载请以链接形式注明出处 本文地址: |
CopyRight 2018-2019 实验室设备网 版权所有 |